<?php
session_start();
require "include/dbms.inc.php";
require "include/template.inc.php";
require "include/setcontents.inc.php";

$body = new Template("dtml/catalogo.html");

$resultM = setcontents::getResult(
        "SELECT id, nome
           FROM marca
       ORDER BY nome");
/* conto il numero di prodotti associati ad ogni marca*/
foreach($resultM as $k => $v){
    
    $num = mysql_query("
        SELECT *
          FROM prodotto
         WHERE marca = '{$v['id']}'and attivo='1'");

     if (!$num ) {
        $message="Si e' riscontrato un errore nel database: ".mysql_error();
        $style="alert";
        exit;
     }
     $resultM[$k]['num'] = mysql_num_rows($num);

}

$resultC = setcontents::getResult(
        "SELECT id,nome
           FROM categoria
       ORDER BY nome");
/* conto il numero di prodotti associati ad ogni categoria*/
foreach($resultC as $k => $v){


    $num = mysql_query("
        SELECT *
          FROM prodotto
         WHERE categoria = '{$v['id']}'and attivo='1'");

     if (!$num ) {
        $message="Si e' riscontrato un errore nel database: ".mysql_error();
        $style="alert";
        exit;
     }
     $resultC[$k]['num'] = mysql_num_rows($num);// conto i prodotti appartenenti alla categoria in esame

     /* ----- Ciclo per contare tutti i prodotti presenti in tutte le sottocategorie della categoria che si sta esaminando ----- */
     $sup_categ = $resultC[$k]['id'];

     /* ----- i prodotti non attivi non sono visibili agli utenti comuni ----- */
        if(($_SESSION['user']['privilegi'][0]['gruppo']=="amministratore") ||  ($_SESSION['user']['privilegi'][0]['gruppo']=="backoffice")){
            $attivo = "";
        }else{
            $attivo = "and attivo = '1'";
        }
     
    do{
        $sottocategorie = setcontents::getResult("
            SELECT categoria.id as cat_id
              FROM categoria
         LEFT JOIN sottocategoria
                ON id_subcateg = categoria.id
             WHERE sottocategoria.id_categ = '{$sup_categ}'{$or_categorie}");

        if(isset($sottocategorie)){

            // poi accodo alla lista dei prodotti sopra, la lista dei prodotti di tutte le sottocategorie
            $c = 0; //variabile per tenere il numero delle sottocategorie
            foreach($sottocategorie as $key => $value){
                
                $c++;
                $sotto_prodotti = mysql_query("
                    SELECT *
                      FROM prodotto
                     WHERE categoria = '{$value['cat_id']}'{$attivo}{$marca}");

                // sommo i prodotti della sottocategoria al numero attuale
                
                $resultC[$k]['num'] = $resultC[$k]['num'] + mysql_num_rows($sotto_prodotti);
                
                /* la prima sottocategoria(c = 1) viene inserita nella variabile che è il primo parametro nella query $sottocategorie
                 * mentre le successive vengono inserite nella seconda variabile che realizza l'OR nella query
                 * Questo consente di prelevare dal database tutte le sottocategorie per ogni sottocategoria che analizziamo
                 * in modo ricorsivo */

                if($c > 1){
                    $or_categorie = "OR sottocategoria.id_categ = '{$value['cat_id']}'";
                }else{
                    $sup_categ = $value['cat_id'];
                }
            }// fine ciclo sui prodotti di ogni sottocategoria
        }// fine controllo sottocategorie
    }while(isset($sottocategorie));

}
$body->setContent("lista_marca", $resultM);
$body->setContent("lista_categoria", $resultC);

setcontents::setTemplate();
setcontents::setMenu($message,$style);
setcontents::setBody($body);

$main->close();
?>
